package com.reliable.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.reliable.api.param.ReliablePushTemplate.ReliablePushDetailPageParam;
import com.reliable.common.core.domain.AjaxResult;
import com.reliable.service.domain.ReliablePushTemplate;
import com.reliable.api.dto.ReliableExportPushRecord.ReliablePushTemplateStatDTO;
import com.reliable.api.param.ReliablePushTemplate.ReliablePushTemplatePageParam;

import java.util.List;

/**
 * 推送目标模板Service接口
 *
 * @author ruoyi
 * @date 2025-10-29
 */
public interface IReliablePushTemplateService extends IService<ReliablePushTemplate> {

    /**
     * 查询推送目标模板
     *
     * @param id 推送目标模板主键
     * @return 推送目标模板
     */
    public ReliablePushTemplate selectReliablePushTemplateById(Long id);

    /**
     * 查询推送目标模板列表
     *
     * @param reliablePushTemplate 推送目标模板
     * @return 推送目标模板集合
     */
    public List<ReliablePushTemplate> selectReliablePushTemplateList(ReliablePushTemplate reliablePushTemplate);

    /**
     * 新增推送目标模板
     *
     * @param reliablePushTemplate 推送目标模板
     * @return 结果
     */
    public int insertReliablePushTemplate(ReliablePushTemplate reliablePushTemplate);

    /**
     * 修改推送目标模板
     *
     * @param reliablePushTemplate 推送目标模板
     * @return 结果
     */
    public int updateReliablePushTemplate(ReliablePushTemplate reliablePushTemplate);

    /**
     * 批量删除推送目标模板
     *
     * @param ids 需要删除的推送目标模板主键集合
     * @return 结果
     */
    public int deleteReliablePushTemplateByIds(Long[] ids);

    /**
     * 删除推送目标模板信息
     *
     * @param id 推送目标模板主键
     * @return 结果
     */
    public int deleteReliablePushTemplateById(Long id);
    
    /**
     * 查询推送模板统计列表(带分页)
     *
     * @param param 查询参数和分页信息
     * @return 推送模板统计列表
     */
     List<ReliablePushTemplateStatDTO> selectReliablePushTemplateStatList(ReliablePushTemplatePageParam param);

    AjaxResult pushDetailList(ReliablePushDetailPageParam param);


}